Social networking systems enable a very large number of users (e.g., a billion users or more) to share data worldwide. To support this data sharing, the social networking systems have multiple data centers that are distributed around the world. The multiple data centers enable the data to be distributed worldwide, e.g., to back up data or to store data near where the data will be consumed. Each of these data centers typically has a very large number of server computing devices. The server computing devices may be assigned various roles, e.g., compute, data storage, web site, etc.
Data centers may be built and geographically located based on various requirements and constraints. Data centers in developed countries can be large, where power and land are available. In countries where power and land are less available or there is a regulation concern, data centers may be smaller. Because larger data centers are easier to manage and provide superior scalability, they are preferred and tend to be built in a handful of locations. On the other hand, for flexibility and nimbleness, small data centers are preferred and they are built in many places wherever there are users of the social networking system. As a result, the infrastructure for a social networking systems may have various sizes of data centers that are geographically dispersed.
Content providers and, e.g., streaming video content providers, similarly build large data centers and can locate them near consumers of their content. They may also use services of content delivery networks to deliver content. These content delivery networks also have geographically dispersed data centers.
To exchange large amounts of data between data centers, the owners or operators of the data centers typically use high speed data communications links between the data centers, e.g., fiber optic communications links. High speed communications links (also referred to herein as “lines”), e.g., fiber optic links, can have two physical communications lines (e.g., fibers) that together form a circuit. One of these lines is typically used to transmit data and the other line is typically used to receive data. This is commonly known as full duplex communications.
For many content providers, e.g., social networking systems, streaming video content providers, etc., the bandwidth needs can often be asymmetric. As an example, when a user requests content, the messages forming the request can be quite small, e.g., a uniform resource locator (“URL”), but the response can be very large, e.g., multiple images or frames of video. In such cases, one of the two physical communications lines forming the circuit is lightly utilized (e.g., to transmit requests) but the other communications line is very heavily utilized (e.g., to receive responses to the requests). However, at other times, the bandwidth needs can be more symmetric. As an example, when backing up data to other data centers, both communications lines may be used to exchange data. Because of the variable nature of bandwidth needs, physical network providers (e.g., telco companies) typically provide symmetric capacity. As a result, the use of some communications lines is suboptimal: although capacity exists, it is configured to be used in a particular direction only, e.g., the “wrong” direction. Reconfiguring the lines can be a laborious and expensive process that requires downtime on the entire communications circuit, especially when the reconfiguration must be done regularly, e.g., to respond to the variable bandwidth.